package py.com.alfa.escriba.gui.controller.object.referencia;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;

import py.com.alfa.escriba.gui.config.EscribaGUIApplicationContextProvider;
import py.com.alfa.escriba.gui.controller.view.Permissions;
import py.com.alfa.escriba.gui.controller.view.View;
import py.com.alfa.escriba.gui.controller.view.ViewManager;
import py.com.alfa.escriba.gui.controller.view.referencia.DepartamentosViewContext;
import py.com.alfa.escriba.gui.controller.view.referencia.DepartamentosViewFragment;
import py.com.alfa.escriba.gui.dto.admin.DepartamentoDTO;
import py.com.alfa.escriba.gui.services.Services;


public class DepartamentosControllerObject {

	private List<DepartamentoDTO> departamentos;
	private DepartamentoDTO departamento;
	private ViewManager viewManager;
	private String titulo = "";
	
	public DepartamentosControllerObject() {
		ApplicationContext ctx = EscribaGUIApplicationContextProvider.getContext();
		this.setDepartamentos(new ArrayList<DepartamentoDTO>());
		this.setViewManager((ViewManager) ctx.getBean(Services.VIEW_MANAGER));
		this.getViewManager().registerContext(View.DEPARTAMENTOS, new DepartamentosViewContext());
	}

	public DepartamentosViewFragment view(){
		return (DepartamentosViewFragment) this.getContext().getViewFragment();
	}

	public DepartamentosViewContext getContext(){
		return (DepartamentosViewContext) getViewManager().getContext(View.DEPARTAMENTOS);
	}
	
	public Permissions getPermissions(){
		return getViewManager().getPermissions();
	}

	public List<DepartamentoDTO> getDepartamentos() {
		return departamentos;
	}

	public void setDepartamentos(List<DepartamentoDTO> departamentos) {
		this.departamentos = departamentos;
	}

	public DepartamentoDTO getDepartamento() {
		if ( this.departamento == null ) {
			this.departamento = new DepartamentoDTO();
		}
		return departamento;
	}

	public void setDepartamento(DepartamentoDTO departamento) {
		this.departamento = departamento;
	}

	public ViewManager getViewManager() {
		return viewManager;
	}

	public void setViewManager(ViewManager viewManager) {
		this.viewManager = viewManager;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

}
